From 0aa79431e86454d76ab8c1b27e9212e98bb8a02a Mon Sep 17 00:00:00 2001 From: Alex Williamson Date: Tue, 26 Jun 2007 16:18:28 -0600 Subject: [PATCH] libxc: Add xc_domain_setdebugging in xenctrl API Use it in xc_ptrace.c Signed-off-by: Tristan Gingold Acked-by: Keir Fraser --- tools/libxc/xc_domain.c | 12 ++++++++++++ tools/libxc/xc_ptrace.c | 10 ++-------- tools/libxc/xenctrl.h | 12 ++++++++++++ 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/tools/libxc/xc_domain.c b/tools/libxc/xc_domain.c index 92a8b98511..c63135e32e 100644 --- a/tools/libxc/xc_domain.c +++ b/tools/libxc/xc_domain.c @@ -696,6 +696,18 @@ int xc_get_hvm_param(int handle, domid_t dom, int param, unsigned long *value) return rc; } +int xc_domain_setdebugging(int xc_handle, + uint32_t domid, + unsigned int enable) +{ + DECLARE_DOMCTL; + + domctl.cmd = XEN_DOMCTL_setdebugging; + domctl.domain = domid; + domctl.u.setdebugging.enable = enable; + return do_domctl(xc_handle, &domctl); +} + /* * Local variables: * mode: C diff --git a/tools/libxc/xc_ptrace.c b/tools/libxc/xc_ptrace.c index 288671b5bb..cdccd4da90 100644 --- a/tools/libxc/xc_ptrace.c +++ b/tools/libxc/xc_ptrace.c @@ -566,10 +566,7 @@ xc_ptrace( } if ( request == PTRACE_DETACH ) { - domctl.cmd = XEN_DOMCTL_setdebugging; - domctl.domain = current_domid; - domctl.u.setdebugging.enable = 0; - if ((retval = do_domctl(xc_handle, &domctl))) + if ((retval = xc_domain_setdebugging(xc_handle, current_domid, 0))) goto out_error_domctl; } regs_valid = 0; @@ -593,10 +590,7 @@ xc_ptrace( else if ((retval = xc_domain_pause(xc_handle, current_domid))) goto out_error_domctl; current_is_hvm = !!(domctl.u.getdomaininfo.flags&XEN_DOMINF_hvm_guest); - domctl.cmd = XEN_DOMCTL_setdebugging; - domctl.domain = current_domid; - domctl.u.setdebugging.enable = 1; - if ((retval = do_domctl(xc_handle, &domctl))) + if ((retval = xc_domain_setdebugging(xc_handle, current_domid, 1))) goto out_error_domctl; if (get_online_cpumap(xc_handle, &domctl.u.getdomaininfo, &cpumap)) diff --git a/tools/libxc/xenctrl.h b/tools/libxc/xenctrl.h index df71417c7e..15f08f12a5 100644 --- a/tools/libxc/xenctrl.h +++ b/tools/libxc/xenctrl.h @@ -433,6 +433,18 @@ int xc_domain_send_trigger(int xc_handle, uint32_t trigger, uint32_t vcpu); +/** + * This function enables or disable debugging of a domain. + * + * @parm xc_handle a handle to an open hypervisor interface + * @parm domid the domain id to send trigger + * @parm enable true to enable debugging + * return 0 on success, -1 on failure + */ +int xc_domain_setdebugging(int xc_handle, + uint32_t domid, + unsigned int enable); + /* * EVENT CHANNEL FUNCTIONS */ -- 2.30.2